// 括号后面为返回值类型
// 变量? 表示可选参数
// 默认参数 也是可选参数
function add(x: number, y: number, z?: number, k = 10): number {
  if (z) {
    return x + y + z + k
  } else {
    return x + y + k
  }
}
// 类型推断 没有明确指定类型会推测出类型
const add2: (x: number, y: number, z?: number, k?: number) => number = add

let res1 = add(1, 2, 3)
let res2 = add(1, 2)
let res3 = add(1, 2, 3, 4)

